home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / PIIGSIncludes / Menus.p < prev    next >
Encoding:
Text File  |  1990-04-03  |  6.6 KB  |  186 lines  |  [TEXT/MPS ]

  1. {********************************************
  2. ; File: Menus.p
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc. 1986-90
  6. ; All Rights Reserved
  7. ;
  8. ********************************************}
  9.  
  10. UNIT MENUS;
  11. INTERFACE
  12. USES TYPES,QUICKDRAW,EVENTS,CONTROLS,WINDOWS;
  13. CONST
  14.  
  15.  
  16. { MenuDefProc Codes }
  17. mDrawMsg = $0000;
  18. mChooseMsg = $0001;
  19. mSizeMsg = $0002;
  20. mDrawTitle = $0003;
  21. mDrawMItem = $0004;
  22. mGetMItemID = $0005;
  23.  
  24. { Reference Flags }
  25. menuRefPtr = $0000;
  26. mRefHandle = $4000;
  27. mRefResource = $8000;
  28.  
  29. { Menu Flags }
  30. menuAllowCache = $0008;
  31. menuCustom = $0010;
  32. menuXOR = $0020;
  33. menuDisabled = $0080;
  34. menuAlwaysCallMChoose = $0100;
  35.  
  36. { Item Flags }
  37. itemBold = $0001;
  38. itemItalic = $0002;
  39. itemUnderline = $0004;
  40. itemXOR = $0020;
  41. itemDivider = $0040;
  42. itemDisabled = $0080;
  43. itemOutline = $0800;
  44. itemShadow = $1000;
  45.  
  46. { Old Menu Flags }
  47. mInvis = $0004;
  48. mCustom = $0010;
  49. mXor = $0020;
  50. mSelected = $0040;
  51. mDisabled = $0080;
  52.  
  53. { MenuFlag Masks }
  54. menuCacheMask = $0008;
  55. customMenu = $0010;
  56. xorMItemHilite = $0020;
  57. xorTitleHilite = $0020;
  58. underMItem = $0040;
  59. disableItem = $0080;
  60. disableMenu = $0080;
  61. enableItem = $FF7F;
  62. enableMenu = $FF7F;
  63. noUnderMItem = $FFBF;
  64. colorMItemHilite = $FFDF;
  65. colorTitleHilite = $FFDF;
  66. colorReplace = $FFDF;
  67. standardMenu = $FFEF;
  68.  
  69. { Other misc constants }
  70. type2 = $0040;
  71. {$IFC UNDEFINED mtItemRefArrayLength }  { MenuTemplate - default number of Ref's }
  72. mtItemRefArrayLength = $0005;
  73. {$SETC mtItemRefArrayLength := 0}
  74. {$ENDC}
  75. {$IFC UNDEFINED mbtMenuRefArrayLength }  { MenuBarTemplate - default number of Ref's }
  76. mbtMenuRefArrayLength = $0005;
  77. {$SETC mbtMenuRefArrayLength := 0}
  78. {$ENDC}
  79.  
  80. TYPE
  81. MenuBarRecHndl = ^MenuBarRecPtr;
  82. MenuBarRecPtr = ^MenuBarRec;
  83. MenuBarRec = CtlRec ;
  84. MenuRecHndl = ^MenuRecPtr;
  85. MenuRecPtr = ^MenuRec;
  86. MenuRec = RECORD
  87.     menuID : Integer; { Menu's ID number }
  88.     menuWidth : Integer; { Width of menu }
  89.     menuHeight : Integer; { Height of menu }
  90.     menuProc : WordProcPtr; { Menu's definition procedure }
  91.     menuFlag : Integer; { Bit flags }
  92.     numOfItems : Integer;
  93.     titleWidth : Integer; { Width of menu's title }
  94.     titleName : Ptr;
  95.     menuCache : Handle;
  96. END;
  97. MenuItemTemplate = PACKED RECORD
  98.     version : Integer; { Version number (must be 0) }
  99.     itemID : Integer; { Menu item ID }
  100.     itemChar : Byte; { Primary keystroke character }
  101.     itemAltChar : Byte; { Alternate keystroke character }
  102.     itemCheck : Integer; { Character code for checked items }
  103.     itemFlag : Integer; { Menu item flag word }
  104.     itemTitleRef : Ref; { Reference to item title string }
  105. END;
  106. MenuTemplate = RECORD
  107.     version : Integer; { Version number (must be 0) }
  108.     menuID : Integer; { Menu ID }
  109.     menuFlag : Integer; { Menu flag word }
  110.     menuTitleRef : Ref; { Reference to menu title string }
  111.     itemRefArray : ARRAY[1..mtItemRefArrayLength] OF Ref; { mtItemRefArrayLength references to menu items  }
  112. END;
  113. MenuBarTemplate = RECORD
  114.     version : Integer; { Version number (must be 0) }
  115.     menuFlag : Integer; { MenuBar flag word }
  116.     menuRefArray : ARRAY[1..mbtMenuRefArrayLength] OF Ref; { mbtMenuRefArrayLength references to menus }
  117. END;
  118. PROCEDURE CalcMenuSize ( newWidth:Integer; newHeight:Integer; menuNum:Integer)  ;
  119. PROCEDURE CheckMItem ( checkedFlag:Boolean; itemNum:Integer)  ;
  120. FUNCTION CountMItems ( menuNum:Integer) : Integer ;
  121. PROCEDURE DeleteMenu ( menuNum:Integer)  ;
  122. PROCEDURE DeleteMItem ( itemNum:Integer)  ;
  123. PROCEDURE DisableMItem ( itemNum:Integer)  ;
  124. PROCEDURE DisposeMenu ( menuHandle:MenuRecHndl)  ;
  125. PROCEDURE DrawMenuBar   ;
  126. PROCEDURE EnableMItem ( itemNum:Integer)  ;
  127. FUNCTION FixMenuBar  : Integer ;
  128. PROCEDURE FlashMenuBar   ;
  129. FUNCTION GetBarColors  : Longint ;
  130. FUNCTION GetMenuBar  : MenuBarRecHndl ;
  131. FUNCTION GetMenuFlag ( menuNum:Integer) : Integer ;
  132. FUNCTION GetMenuMgrPort  : GrafPortPtr ;
  133. FUNCTION GetMenuTitle ( menuNum:Integer) : Ptr ;
  134. FUNCTION GetMHandle ( menuNum:Integer) : MenuRecHndl ;
  135. FUNCTION GetMItem ( itemNum:Integer) : StringPtr ;
  136. FUNCTION GetMItemFlag ( itemNum:Integer) : Integer ;
  137. FUNCTION GetMItemMark ( itemNum:Integer) : Integer ;
  138. FUNCTION GetMItemStyle ( itemNum:Integer) : TextStyle ;
  139. FUNCTION GetMTitleStart  : Integer ;
  140. FUNCTION GetMTitleWidth ( menuNum:Integer) : Integer ;
  141. FUNCTION GetPopUpDefProc  : Ptr ;
  142. FUNCTION GetSysBar  : MenuBarRecHndl ;
  143. PROCEDURE HideMenuBar   ;
  144. PROCEDURE HiliteMenu ( hiliteFlag:Boolean; menuNum:Integer)  ;
  145. PROCEDURE InitPalette   ;
  146. PROCEDURE InsertMenu ( addMenuHandle:MenuRecHndl; insertAfter:Integer)  ;
  147. PROCEDURE InsertMItem ( addItemPtr:Ptr; insertAfter:Integer; menuNum:Integer)  ;
  148. PROCEDURE InsertMItem2 ( refDesc:RefDescriptor; menuItemTRef:Ref; insertAfter:Integer; menuNumber:Integer)  ;
  149. PROCEDURE MenuBootInit   ;
  150. FUNCTION MenuGlobal ( menuGlobalMask:Integer) : Integer ;
  151. PROCEDURE MenuKey ( taskRecPtr:WmTaskRec; barHandle:MenuBarRecHndl)  ;
  152. PROCEDURE MenuNewRes   ;
  153. PROCEDURE MenuRefresh ( redrawRoutinePtr:VoidProcPtr)  ;
  154. PROCEDURE MenuReset   ;
  155. PROCEDURE MenuSelect ( taskRecPtr:WmTaskRec; barHandle:MenuBarRecHndl)  ;
  156. PROCEDURE MenuShutDown   ;
  157. PROCEDURE MenuStartUp ( userID:Integer; dPageAddr:Integer)  ;
  158. FUNCTION MenuStatus  : Boolean ;
  159. FUNCTION MenuVersion  : Integer ;
  160. FUNCTION NewMenu ( menuStringPtr:Ptr) : MenuRecHndl ;
  161. FUNCTION NewMenu2 ( refDesc:RefDescriptor; menuTRef:Ref) : MenuRecHndl ;
  162. FUNCTION NewMenuBar ( theWindowPtr:WindowPtr) : MenuBarRecHndl ;
  163. FUNCTION NewMenuBar2 ( refDesc:RefDescriptor; menuBarTRef:Ref; windowPortPtr:WindowPtr) : MenuBarRecHndl ;
  164. FUNCTION PopUpMenuSelect ( selection:Integer; currentLeft:Integer; currentTop:Integer; flag:Integer; menuHandle:MenuRecHndl) : Integer ;
  165. PROCEDURE SetBarColors ( newBarColor:Integer; newInvertColor:Integer; newOutColor:Integer)  ;
  166. PROCEDURE SetMenuBar ( barHandle:MenuBarRecHndl)  ;
  167. PROCEDURE SetMenuFlag ( newValue:Integer; menuNum:Integer)  ;
  168. PROCEDURE SetMenuID ( newMenuNum:Integer; curMenuNum:Integer)  ;
  169. PROCEDURE SetMenuTitle ( newStr:Str255; menuNum:Integer)  ;
  170. PROCEDURE SetMenuTitle2 ( refDesc:RefDescriptor; titleRef:Ref; menuNum:Integer)  ;
  171. PROCEDURE SetMItem ( newItemLine:Str255; itemNum:Integer)  ;
  172. PROCEDURE SetMItem2 ( refDesc:RefDescriptor; menuItemTRef:Ref; menuItemID:Integer)  ;
  173. PROCEDURE SetMItemBlink ( count:Integer)  ;
  174. PROCEDURE SetMItemFlag ( newValue:Integer; itemNum:Integer)  ;
  175. PROCEDURE SetMItemID ( newItemNum:Integer; curItemNum:Integer)  ;
  176. PROCEDURE SetMItemMark ( mark:Integer; itemNum:Integer)  ;
  177. PROCEDURE SetMItemName ( str:Str255; itemNum:Integer)  ;
  178. PROCEDURE SetMItemName2 ( refDesc:RefDescriptor; titleRef:Ref; menuItemID:Integer)  ;
  179. PROCEDURE SetMItemStyle ( theTextStyle:TextStyle; itemNum:Integer)  ;
  180. PROCEDURE SetMTitleStart ( xStart:Integer)  ;
  181. PROCEDURE SetMTitleWidth ( newWidth:Integer; menuNum:Integer)  ;
  182. PROCEDURE SetSysBar ( barHandle:MenuBarRecHndl)  ;
  183. PROCEDURE ShowMenuBar   ;
  184. IMPLEMENTATION
  185. END.
  186.